package TP2;

import VAMP.*;

public class SuperpositionDe2Images extends Thread implements vAlgo{
	private VAMP v;

	SuperpositionDe2Images(VAMP v){
		this.v=v;
		super.start();
	}

	public synchronized void run(){
		while(true){
			v.AtTheBegining(this);
			//2 images de 4 bits codees sur 8 bits (4PF et 4pf)
			int nbColor=256;
			vPixel[][] img;
			vColor[] pal,pal2;
			vWin win;
			
			v.AddLog("------------------------------------------");
			v.AddLog("lecture image en NGris (2 images ensemble)");
			v.AddLog("lecture Greyscale en Indexed");
			v.AddLog("affichage successif des 2 images");
			v.AddLog("02-a : ouvrir l'image TP2.02.b.2im1.pgm (ou  TP2.02.b.2im2.pgm)");
			vImage<vPixel[][]> d= v.LoadImage(VAMP.tImage.RGBindexed);
			img=d.data;
			pal= d.pal;
			win= v.DrawImage(img, pal);

			v.AddLog("image sur 8 bits'");
			v.AddLog("cliquez sur le bouton 'Continue'");

			v.Pause(this);
			pal2=new vColor[nbColor];

			for(int i=0;i<nbColor;i++)
				pal2[i]= new vColor((pal[i].getColorValues()[0]>>4)<<4,(pal[i].getColorValues()[1]>>4)<<4, (pal[i].getColorValues()[2]>>4)<<4);
			// palette avec les 16 PF 
			// (dynamique multipliee par 16 avec <<4)

			//img.setPal(pal2);
			v.DrawImage(img,pal2,win);

			v.AddLog("image des 4  bits de 'Poids Fort'");
			v.AddLog("cliquez sur le bouton 'Continue'");
			v.Pause(this);

			for(int i=0;i<nbColor;i++)
				pal2[i]= new vColor((pal[i].getColorValues()[0])<<4,(pal[i].getColorValues()[1])<<4, (pal[i].getColorValues()[2])<<4);
			// palette avec les 16 pf
			// (dynamique multipliee par 16 avec <<4)

			//img.setPal(pal2);
			v.DrawImage(img, pal2, win);

			v.AddLog("image des 4  bits de 'poids faible'");
			v.AddLog("cliquez sur le bouton 'Continue'");
			v.Pause(this);
			win.close();
		}
	}

}
